面试准备
编程基础:
(关注代码的时间复杂度空间复杂度)
数据结构学过哪些,回答了数组,链表,然后问他们各自的特点以及适合在什么场景下应用,以及他们的时间复杂度
死锁产生的条件, 以及如何避免死锁,银行家算法,产生死锁后如何解决
java中创建类的实例有几种方法
是否了解synchronized及lock,简述下使用场景及其区别(比较通用的解决线程安全的方法)
synchronized和reetrantlock锁
手撕一个单例模式
会那些设计模式,单例模式,工厂模式,代理模式,装饰器模式
Java中的框架
jvm
python和Java的内存管理
python中的list和tuple
python多(threadign/thread) lvs四种模式
Hadoop的相关知识
有序数组排序,二分查找,复杂度
有N个节点的满二叉树的高度。(1+LogN) 类似的 有k层的满二叉树有多少个节点(2*K-1)
hashMap与hashTable的区别
hashset和hashmap的区别,haspmap的底层实现put操作,扩容机制,
Java集合类都有哪些,详细说明并介绍特点
说一说Java的集合类
LinkedList与ArrayList的区别
1000个节点,插入,查找,删除的频率差不多,用LinkedList还是ArrayList
Spring的依赖注入是怎么实现的
熟悉HashMap吗?是线程安全的吗?多线程访问有什么问题?仔细说一下
知道线程安全的Map吗?怎么实现的?
== 操作比较的是什么?与equals有什么不同?
Integer的 == 与 equals操作
String的 == 操作
对链表排序(归并排序,快速排序)
实现LRU
垃圾回收
HashMap源码,是否线程安全,为什么
10G的文件,2G的内存,文件中每一行都是一个酒店名,如何统计出前二十的酒店
HashMap的容量为什么是2的n次方
为什么要用B+Tree来作为索引底层的数据结构(B+tree被大量用于数据库的索引中)
会那些设计模式,单例模式,工厂模式,代理模式,装饰器模式
JVM内存分区
string ,stringbuild,stringbuffer区别,string内部结构
快速排序的思想讲一下,手写快排,给个数组,模拟快排的过程
hash的用处 怎么解决hash冲突
缓存池我们很多地方都要用到,如何实现缓存池(队列和map)
java内存的空间分布
jvm的垃圾回收机制,,让比较了CMS和G1的区别,还提了“如果是大数据量的情况下使用什么回收器比较好?“G1是针对服务器的,并且是分块整理的当然选择G1。最后问了一个问题“如果jvm一直在做FullGC怎么办?“这个我开始反应就回答了设置jvm的堆区最大值
hashmap的底层结构。如何扩容,并发怎么解决,concurrentHashMap如何实现高效读写(分区+锁技术),最后居然问了句:为什么负载因子是0.75
Hashmap为什么容量是2的幂次,什么是负载因子
HashMap和HashTable有什么区别
Key-Value存储原理
“有什么难点?”“项目中遇到过哪些问题?”
Java(int和Integer的区别)
Java中抽象类与接口的区别
Java中的集合的底层实现(类似还有HashMap HashSet)
问了map以及hashmap的特点,map实现的数据结构应该是什么
hashmap的实现讲一下吧,讲的很详细了。讲一下红黑树的结构,查询性能等。
Java回收机制
Java中的垃圾回收讲一下,讲了分代,gc算法,gc root可达性分析等
Java内存泄漏
重载与重写的区别
了解 redis 源码么
了解 redis 集群么
说一下java里面的Integer.valueOf()这个函数?
n长的数组放入n+1个数,不能重复,找出缺失的那个数(不知道是不是连续的数)
反射
泛型
死锁是什么呢,怎么解决死锁
为什么负载均衡,怎么实现负载均衡
Java与C++最大的区别
1G数据怎么排序
怎么判断链表有环,怎么优化
范围1到1000的数,原本有1000个,互不重复,现多出来1个重复的数,怎么找到他,统计次数,太慢,求和相减。
N个糖果,每次只能取1个到6个,不能不取,你先取,请问是否有必胜策略,怎么取。
代码:(单例模式)
介绍一下你知道的排序算法以及平均时间复杂度,最坏最好情况
常见的数据结构要掌握,基础的代码会手写(快排、冒泡、归并排序、二分查找、二叉树的遍历、二叉树增删改查)
算法:如何判断一个树是不是另一颗树的子树
算法:给定一个数字,一个数组,找出数组中相加等于这两个数的和,不能用数据结构
算法:找出两个数组相等的数,不能用其他数据结构
代码:数组去重
代码:网易:反转字符串、反转反转
代码:二叉树前序遍历中序遍历后序遍历(递归非递归)
代码:从int数组中找出和最大的连续子串
代码:判断数组是否可以首尾相连成环路
代码:从数组中找出两个相加等于n的下标
代码:一个数的个位十位百位相加,判断结果的个位是不是3
代码:全排列
代码:从A到I
代码:找出一组数中最大的数
代码:找出数组中不重复的数
代码:二叉树的层序遍历
代码:二分查找
两条链表求第一个公共节点
写一个两个有序链表合并成一个有序链表
链表找环状入口
然后问了我一些设计模式,我讲了单例,工厂和装饰者模式,java手写了单例
快排的时间复杂度,冒泡时间复杂度,快排是否稳定,快排的过程
100w个数,怎么找到前1000个最大的,堆排序,怎么构造,怎么调整,时间复杂度。
编程题:给定一个字符串列表(长度为n),给定一个滑动窗长度L,求滑动窗里边最多有多少个不同字符。(要求时间复杂度O(n),空间复杂度O(1))
一个矩阵,从左上角到右下角,每个位置有一个权值。可以上下左右走,到达右下角的路径权值最小怎么走。(先说了一下dfs递归实现。面试官说要优化。说了一下用迪杰斯特拉的思路,说可以)
十亿个数的集合和10w个数的集合,如何求他们的交集(面试官说对较小的数做hash,然后便利大数组即可)
十亿个数找出前100个最大的
常见数据结构与操作(线性表、队列、字符串、树、图)
常见算法(排序、查找、动态规划、递归、回溯)
数据库:
数据库的优化
怎么优化数据库
SQL(多表查询、左链接和右链接的区别)
SQL(索引、多表查询)
写一个SQL语句
SQL(写语句,top,count,group,by,order by,select)
介绍MySQL索引、聚集索引等
MySQL的索引,B+树性质。
mysql 数据库的引擎和区别(innoDB MyISAM)
数据库的索引和优化
说一下数据库事务隔离等级?
基本SQL语句
MySQL存储架构
LVS四种模式实现以及原理
MySQL存储引擎
MySQL几个存储引擎的特点,区别
Linux:
Linux(查看一个文档,显示文档的最后五条数据)
Linux(cd,cd-,mkdir,vi,netstat)
Linux的cpu 100怎么排查,top jstack,日志,gui工具
Linux大文件怎么查某一行的内容。
常见的Linux命令
Linux基础
Linux,查找磁盘上最大的文件的命令
Linux中的文件处理
计算机网络:
UDP TCP的区别
三次握手和四次握手和UDPTCP使用场景
详细讲讲拥塞控制
DNS劫持的原理
路由表中存的是什么
TCP的拥塞控制
http中的get和post请求的区别
怎么确认post请求发送完毕
网络(get和post的区别,七层协议分别是什么,应用层的协议)
七层网络模型
计算机网络熟悉嘛?说一说七层模型以及每一层模型的具体内容
TCP的三次握手,四次挥手,以及每个时刻客户端服务端的状态是什么
TCP的四次挥手,time wait状态有什么意义。
TCP和UDP的核心区别在哪,讲了滑动窗口保证可靠有序传输,UDP不可靠。TCP需要连接而UDP不需要。
10g文件,只有2g内存,怎么查找文件中指定的字符串出现位置。MapReduce分割文件处理。 他说可以用cat | grep 管道处理
怎么查看占用了端口号的程序的可执行文件的位置
怎么统计日志文件中重复数量最多的前十行
osi七层网络模型,五层网络模型,每次层分别有哪些协议
tcp拥塞控制机制,慢开始,拥塞避免,快重传,快恢复
tcp三次握手,四次挥手过程以及三次握手四次挥手的原因,timewait的原型,icmp属于
cdn
tcp的慢启动
tcp的time_wait
TIME_WAIT多了有什么问题?
TCP的三次握手和四次挥手?仔细说说
为什么要四次挥手?三次挥手不行吗?
机器学习算法;
算法提问(推公式,介绍原理),数据结构提问(写代码,介绍原理)
简历上的项目一定要熟悉:项目背景,项目方案、项目成果。项目中的技术点要熟悉
机器学习模型原理和机器学习常见的问题(正负样本不均衡)
常见的机器学习模型要会推公式
逻辑回归推导
最大似然及交叉熵
正则及各自优劣
评价指标及含义
kmeans的计算过程及复杂度
bp推导
lstm网络参数数量计算公式的推导
XGBoost中对GBDT有哪些优化
Word2Vec讲一下
几种模型(SVM、lr、gdbt、em)的原理及公式推导
rf、gdbt的区别
决策树处理连续值的方法
特征选择的方法
过拟合问题的解决
反向传播原理
PCA原理
PCA的实现过程(步骤)
PCA与SVD
SIFT原理
梯度消失的原因及解决方法
k-means的原理,优缺点以及改进
常见分类模型(SVM、决策树、贝叶斯等)的优缺点、使用场景、如何选择
SVM为啥要引入拉格朗日乘子法
梯度下降的优缺点 梯度下降、随机梯度下降、批量梯度下降
牛顿法 拟牛顿法
牛顿法和梯度下降法的联系
em与kmeans的关系
详细解释CNN的原理
海量的item算文本相似度的优化方法
L1L2的区别以及如何解决L1求导困难
解释world2vec的原理以及哈夫曼树的改进
模型的迭代训练中怎么评估效果
LDA的原理
常见的机器学习模型(线性回归、逻辑回归、SVM、感知机、KNN、K-means、EM等)
常见的机器学习理论(过拟合、交叉验证、模型选择、模型融合)
常见的深度学习模型(CNN、RNN)
SIFT原理
SVM核函数的作用
SVM,线性回归和逻辑回归的原理及区别
逻辑回归实现多分类
Adaboost算法
通过简单示例,详细解释ROC曲线,要求给出必要的公式推导。
给出LR(逻辑回归)算法的cost function公式的推导过程。
目标检测时,输入的是视频时,如何进行检测?视频中有很多无用的帧(不包含要检测的目标等)-->人工分割视频、每隔一定数量的帧进行检测
混合高斯模型(GMM)是怎么样的?à原理和公式
梯度下降:为什么多元函数在负梯度方向下降最快?
常用的聚类方法有哪些,简述其原理?分级聚类,K-means聚类
Sigmoid激活函数为什么会出现梯度消失?Sigmoid函数导数的最大值出现在哪个值?-->(x=0处) ReLU激活函数为什么能解决梯度消失问题?
Softmax是和什么loss function配合使用?-->多项式回归loss 该loss function的公式?
常用的颜色空间有哪些?各有什么特征?
常用的图像分割算法有哪些,各有什么优缺点?
图像的像素数和分辨率有什么区别?
视觉:
canny边缘检测算法的过程
常用的边缘检测算法:canny算子、Sobel算子
常用的局部特征和全局特征
颜色识别:
- RGB空间范围分别是0-255,RGB空间白色全为255 黑色全为0,转化为HSV空间,识别颜色
- HSV空间,H:0-180 S:0-255 V:0-255 在HSV空间查表得到颜色
为什么不在RGB中设置范围查找颜色,而是在HSV中
- RGB空间并不能很好地反映出物体具体的颜色信息 , 而相对于RGB空间,HSV空间能够非常直观的表达色彩的明暗,色调,以及鲜艳程度,方便进行颜色之间的对比,比如红色在HSV空间中H维度的范围为0~10和160~180 你跟我说在RGB中它的范围是什么呢?
啊啊
综合能力面试:
优缺点
什么是有效的沟通
怎么与人合作的
怎么证明自己的学习能力强
最有成就的事
遇到过什么挫折
平时喜欢干什么
用三个词形容自己
看什么书,重点讲一本
问了一下最近看什么书,什么时候开始写博客的
环形商场里又很多商家,商家的钱实现不知道,让你去抢钱,不能连续抢两家,怎么保证抢钱最多
如果你带领一个团队做一款产品,你想做什么,为什么
假设有个M*N的方格,从左下角走到右上角每次只能向右或向上,有多少种走法,如果中间有若干格子不能走,又有多少种走法
问面试官的问题:
这个问题会暴露你的关注点,最好能让面试官知道你对未来工作细节的关注,询问面试官提到的公司的事工作的事,而不是薪酬福利。或者提前准备一些通用问题